home *** CD-ROM | disk | FTP | other *** search
/ Graphics Plus / Graphics Plus.iso / general / modelers / geomview / source.lha / Geomview / include / forms.h < prev    next >
C/C++ Source or Header  |  1993-01-26  |  30KB  |  1,164 lines

  1. /************************************************************************
  2.  *                                    *
  3.  *  Forms is a library for building up dialogue and interaction boxes.  *
  4.  *  It is based of the Silicon Graphics Graphical Library.        *
  5.  *                                    *
  6.  *  This software is public domain. It may not be resold.        *
  7.  *                                    *
  8.  *  Written by: Mark Overmars                        *
  9.  *              Department of Computer Science                *
  10.  *              University of Utrecht                    *
  11.  *        P.O. Box 80.089                        *
  12.  *              3508 TB Utrecht, the Netherlands            *
  13.  *        Email: markov@cs.ruu.nl                    *
  14.  *                                    *
  15.  *  Version 2.0 a                            *
  16.  *  Date:  Nov 26, 1991                            *
  17.  ************************************************************************/
  18.  
  19. #ifndef __FORMS_H__
  20. #define __FORMS_H__
  21.  
  22. #if defined(_LANGUAGE_C_PLUS_PLUS) || defined(__cplusplus)
  23. extern "C" {
  24. #endif
  25.  
  26. #include <stddef.h>
  27. #include <gl/gl.h>
  28.  
  29. /************   The type OBJECT            ************/
  30.  
  31. #define FL_LABEL_SIZE        64
  32. #define FL_SHORTCUT_SIZE    32
  33.  
  34. struct forms;
  35.  
  36. typedef struct objs {
  37.    int objclass;        /* What type of object */
  38.    int type;            /* The type within the class */
  39.    int boxtype;         /* The type of the bounding box */
  40.    float x,y,w,h;       /* The bounding box */
  41.    int col1,col2;       /* Two possible colors */
  42.  
  43.    char label[FL_LABEL_SIZE];    /* The label */
  44.    int align;        /* Label or text alignment */
  45.    int lcol;        /* Color of the label */
  46.    float lsize;     /* Size of the label */
  47.    int lstyle;        /* Style of the text label */
  48.  
  49.    char shortcut[FL_SHORTCUT_SIZE];    /* The list of shortcuts */
  50.  
  51.    int (*handle)(struct objs *, int, float, float, char);
  52.             /* Handling procedure. */
  53.  
  54.    int *spec;           /* pointer to special stuff for object */
  55.  
  56.    int pushed;        /* wheter pushed */
  57.    int focus;         /* wheter focussed */
  58.    int belowmouse;    /* Whether currently below the mouse */
  59.  
  60.    int frozen;        /* Whether it will be redrawn */
  61.    int active;        /* Whether active */
  62.    int input;        /* Whether receiving input */
  63.    int visible;         /* Whether being displayed */
  64.    int radio;           /* Whether a radio object */
  65.    int automatic;       /* Whether this object gets timer events */
  66.    void (*object_call_back)(struct objs *, long);
  67.             /* The call-back routine */
  68.    long argument;    /* Its argument */
  69.  
  70.    struct objs *next;    /* Next object in the form */
  71.    struct objs *prev;    /* Previous object in the form */
  72.    struct forms *form;    /* Form to which object belong */
  73. } FL_OBJECT;
  74.  
  75. /************   The type FORM              ************/
  76.  
  77. typedef struct forms {
  78.    long window;         /* Window of the form */
  79.    float w,h;           /* The size of the form */
  80.    long x,y;        /* Position of form on screen */
  81.  
  82.    int deactivated;    /* Whether deactivated */
  83.    int visible;         /* Whether being displayed */
  84.    int frozen;          /* When true no redraws are performed */
  85.  
  86.    int doublebuf;    /* Whether in double buffer mode */
  87.  
  88.    void (*form_call_back)(struct objs *);
  89.             /* The call-back routine */
  90.  
  91.    struct objs *first;    /* First object in the form */
  92.    struct objs *last;    /* Last object in the form */
  93.  
  94.    struct objs *focusobj; /* Object to which input is directed */
  95. } FL_FORM;
  96.  
  97. /************   General Constants          ************/
  98.  
  99. #ifndef NULL
  100. #define NULL                    0
  101. #endif
  102.  
  103. #ifndef FALSE
  104. #define FALSE                   0
  105. #endif
  106.  
  107. #ifndef TRUE
  108. #define TRUE                    1
  109. #endif
  110.  
  111. /***** Placement *****/
  112.  
  113. #define FL_PLACE_FREE        0
  114. #define FL_PLACE_SIZE        1
  115. #define FL_PLACE_ASPECT        2
  116. #define FL_PLACE_MOUSE        3
  117. #define FL_PLACE_CENTER        4
  118. #define FL_PLACE_POSITION    5
  119.  
  120. /***** Finds *****/
  121.  
  122. #define FL_FIND_INPUT        0
  123. #define FL_FIND_AUTOMATIC    1
  124. #define FL_FIND_MOUSE        2
  125.  
  126. /***** Special Objects  *****/
  127.  
  128. #define FL_BEGIN_GROUP        10000
  129. #define FL_END_GROUP        20000
  130.  
  131. /***** Alignments *****/
  132.  
  133. #define FL_ALIGN_TOP        0
  134. #define FL_ALIGN_BOTTOM        1
  135. #define FL_ALIGN_LEFT        2
  136. #define FL_ALIGN_RIGHT        3
  137. #define FL_ALIGN_CENTER        4
  138.  
  139. /***** Bounding boxes *****/
  140.  
  141. #define FL_NO_BOX        0
  142. #define FL_UP_BOX        1
  143. #define FL_DOWN_BOX        2
  144. #define FL_FLAT_BOX        3
  145. #define FL_BORDER_BOX        4
  146. #define FL_SHADOW_BOX        5
  147. #define FL_FRAME_BOX        6
  148. #define FL_ROUNDED_BOX        7
  149. #define FL_RFLAT_BOX        8
  150. #define FL_RSHADOW_BOX        9
  151.  
  152. /***** Boundary Colors *****/
  153.  
  154. #define FL_TOP_BOUND_COL    51
  155. #define FL_LEFT_BOUND_COL    55
  156. #define FL_BOT_BOUND_COL    40
  157. #define FL_RIGHT_BOUND_COL    35
  158.  
  159. #define FL_COL1            47
  160. #define FL_MCOL            49
  161. #define FL_LCOL            0
  162.  
  163. #define FL_BOUND_WIDTH        3.0
  164.  
  165. /***** Events *****/
  166.  
  167. #define FL_DRAW            0
  168. #define FL_PUSH            1
  169. #define FL_RELEASE        2
  170. #define FL_ENTER        3
  171. #define FL_LEAVE        4
  172. #define FL_MOUSE        5
  173. #define FL_FOCUS        6
  174. #define FL_UNFOCUS        7
  175. #define FL_KEYBOARD        8
  176. #define FL_STEP            9
  177. #define FL_MOVE            10
  178.  
  179. /***** Font *****/
  180.  
  181. #define FL_FONT_NAME        "Helvetica"
  182. #define FL_FONT_BOLDNAME    "Helvetica-Bold"
  183. #define FL_FONT_ITALICNAME    "Helvetica-Oblique"
  184. #define FL_FONT_FIXEDNAME    "Courier"
  185. #define FL_FONT_ICONNAME    "Icon"
  186.  
  187. #define FL_SMALL_FONT        8.0
  188. #define FL_NORMAL_FONT        11.0
  189. #define FL_LARGE_FONT        20.0
  190.  
  191. #define FL_NORMAL_STYLE        0
  192. #define FL_BOLD_STYLE        1
  193. #define FL_ITALIC_STYLE        2
  194. #define FL_FIXED_STYLE        3
  195. #define FL_ENGRAVED_STYLE    4
  196. #define FL_ICON_STYLE        5
  197.  
  198.  
  199. /************   General Routines           ************/
  200.  
  201. /***** In objects.c *****/
  202.  
  203. typedef int (*FL_HANDLEPTR)(FL_OBJECT *, int , float, float, char);
  204.  
  205. FL_FORM        *fl_make_form(float,float); 
  206. FL_OBJECT    *fl_make_object(int,int,float,float,float,float,char [], FL_HANDLEPTR);
  207.  
  208. void    fl_free_object(FL_OBJECT *);
  209. void    fl_free_form(FL_FORM *);
  210.  
  211. void    fl_add_object(FL_FORM *, FL_OBJECT*);
  212. void    fl_insert_object(FL_OBJECT *, FL_OBJECT*);
  213. void    fl_delete_object(FL_OBJECT *);
  214.  
  215. void    fl_set_object_align(FL_OBJECT *, int);
  216. void    fl_set_object_boxtype(FL_OBJECT *, int);
  217. void    fl_set_object_color(FL_OBJECT *, int, int);
  218. void    fl_set_object_label(FL_OBJECT *, char []);
  219. void    fl_set_object_lcol(FL_OBJECT *, int);
  220. void    fl_set_object_lsize(FL_OBJECT *, float );
  221. void    fl_set_object_lstyle(FL_OBJECT *, int);
  222.  
  223. void    fl_show_object(FL_OBJECT *);
  224. void    fl_hide_object(FL_OBJECT *);
  225.  
  226. void     fl_set_object_focus(FL_FORM *, FL_OBJECT *);
  227.  
  228. void    fl_set_object_shortcut(FL_OBJECT *, char []);
  229.  
  230. FL_OBJECT    *fl_find_object(FL_OBJECT *, int, float, float);
  231. FL_OBJECT    *fl_find_first(FL_FORM *, int, float, float);
  232. FL_OBJECT    *fl_find_last(FL_FORM *, int, float, float);
  233.  
  234. void    fl_redraw_object(FL_OBJECT *);
  235. void    fl_redraw_form(FL_FORM *);
  236.  
  237. void    fl_freeze_object(FL_OBJECT *);
  238. void    fl_unfreeze_object(FL_OBJECT *);
  239. void    fl_freeze_form(FL_FORM *);
  240. void    fl_unfreeze_form(FL_FORM *);
  241.  
  242. void    fl_handle_object(FL_OBJECT *, int, float, float, char);
  243. int    fl_handle_object_direct(FL_OBJECT *, int, float, float, char);
  244.  
  245. /***** In forms.c *****/
  246.  
  247. extern FL_FORM *fl_current_form;
  248.  
  249. FL_FORM        *fl_bgn_form(int, float, float);
  250. void        fl_end_form(void);
  251. void          fl_addto_form(FL_FORM *);
  252.  
  253. FL_OBJECT    *fl_bgn_group(void);
  254. FL_OBJECT    *fl_end_group(void);
  255.  
  256. void        fl_set_form_position(FL_FORM *, long, long);
  257. long        fl_show_form(FL_FORM *, int, int, char *); 
  258. void        fl_hide_form(FL_FORM *);    
  259.  
  260. FL_OBJECT    *fl_do_forms(void);
  261. FL_OBJECT    *fl_check_forms(void);
  262. FL_OBJECT    *fl_do_only_forms(void);
  263. FL_OBJECT    *fl_check_only_forms(void);
  264.  
  265. void        fl_activate_form(FL_FORM *);
  266. void        fl_deactivate_form(FL_FORM *);
  267. void        fl_activate_all_forms();
  268. void        fl_deactivate_all_forms();
  269.  
  270. /***** In events.c *****/
  271.  
  272. extern FL_OBJECT *FL_EVENT;
  273.  
  274. typedef void (*FL_CALLBACKPTR)(FL_OBJECT *, long);
  275. typedef void (*FL_FORMCALLBACKPTR)(FL_OBJECT *);
  276. typedef void (*FL_EVENTCALLBACKPTR)(short, short);
  277.  
  278. void    fl_init_events();
  279.  
  280. void    fl_set_call_back(FL_OBJECT *, FL_CALLBACKPTR, long);
  281. void    fl_set_event_call_back(FL_EVENTCALLBACKPTR);
  282. void    fl_set_form_call_back(FL_FORM *, FL_FORMCALLBACKPTR);
  283.  
  284. void     fl_qdevice(Device);
  285. void     fl_unqdevice(Device);
  286. int     fl_isqueued(Device);
  287. long     fl_qtest(void);
  288. long     fl_qread(short *);
  289. long     fl_blkqread(short *, short);
  290. void     fl_qreset(void);
  291. void     fl_qenter(short,short);
  292. void     fl_tie(Device, Device, Device);
  293.  
  294. void    fl_treat_user_event(void);
  295.  
  296. FL_OBJECT     *fl_object_qtest(void);
  297. FL_OBJECT     *fl_object_qread(void);
  298. void         fl_object_qenter(FL_OBJECT *);
  299.  
  300. /***** In goodies.c *****/
  301.  
  302. long     fl_show_buttonbox(void);
  303. void     fl_hide_buttonbox(void);
  304. void     fl_set_buttonbox_label(int, char []);
  305.  
  306. void     fl_show_message(char [], char[], char []);
  307. int     fl_show_question(char [], char[], char []);
  308. int     fl_show_choice(char [], char[], char [], int,char [], char[], char []);
  309. char     *fl_show_input(char[], char[]);
  310.  
  311. int     fl_show_colormap(int);
  312.  
  313. /***** In fselect.c *****/
  314.  
  315. char     *fl_show_file_selector(char [], char [], char [], char []);
  316.  
  317. char     *fl_get_directory();
  318. char     *fl_get_pattern();
  319. char     *fl_get_filename();
  320.  
  321. /***** In draw.c *****/
  322.  
  323. void    fl_get_mouse(float *, float *);
  324.  
  325. void    fl_set_clipping(float, float, float, float);
  326. void    fl_unset_clipping(void);
  327.  
  328. void    fl_init_fonts();
  329. void    fl_set_font(char [], char [], char [], char[]);
  330. float    fl_get_char_height(float, int);
  331. float    fl_get_char_width(float, int, char);
  332. float    fl_get_string_width(float, int, char []);
  333.  
  334. void    fl_init_colormap();
  335. void    fl_color(int);
  336. void    fl_mapcolor(int, short, short, short);
  337. void    fl_getmcolor(int, short *, short *, short *);
  338.  
  339. void    fl_line(float, float, float, float, int);
  340. void    fl_rect(float, float, float, float, int);
  341. void    fl_bound(float, float, float, float, int);
  342. void    fl_rectbound(float, float, float, float, int);
  343.  
  344. void    fl_drw_box(int ,float, float, float, float, int,float);
  345. void    fl_drw_text(int, float, float, float, float, int, float, int, char[]);
  346. void    fl_drw_text_beside(int, float, float, float, float, int, float, int, char[]);
  347. void    fl_drw_text_cursor(int, float, float, float, float, int, float, int, char[], int, int);
  348.  
  349. /***** In symbols.c *****/
  350.  
  351. typedef void (*FL_DRAWPTR)(int);
  352.  
  353. void     fl_init_symbols();
  354.  
  355. int     fl_add_symbol(char [], FL_DRAWPTR, int);
  356. int     fl_draw_symbol(char [], float, float, float,float, int);
  357.  
  358. /***** In support.c *****/
  359.  
  360. extern int fl_rgbmode;
  361. extern int fl_doublebuf;
  362.  
  363. void    fl_init();
  364. void    fl_set_graphics_mode(int, int);
  365.  
  366. void    fl_show_errors(int);
  367. void    fl_error(char [], char []);
  368.  
  369. void    *fl_malloc(size_t);
  370.  
  371. /************************* The Classes ***********************/
  372.  
  373. /************   Object Class: Bitmap       ************/
  374.  
  375. /***** Class    *****/
  376.  
  377. #define FL_BITMAP        3
  378.  
  379. /***** Types    *****/
  380.  
  381. #define FL_NORMAL_BITMAP    0
  382.  
  383. /***** Defaults *****/
  384.  
  385. #define FL_BITMAP_BOXTYPE    FL_NO_BOX
  386. #define FL_BITMAP_COL1        0
  387. #define FL_BITMAP_COL2        FL_COL1
  388. #define FL_BITMAP_LCOL        FL_LCOL
  389. #define FL_BITMAP_ALIGN        FL_ALIGN_BOTTOM
  390.  
  391. /***** Others   *****/
  392.  
  393. #define FL_BITMAP_MAXSIZE    128*128
  394. #define FL_BITMAP_BW        FL_BOUND_WIDTH
  395.  
  396. /***** Routines *****/
  397.  
  398. FL_OBJECT     *fl_create_bitmap(int, float, float, float, float, char []);
  399. FL_OBJECT     *fl_add_bitmap(int, float, float, float, float, char []);
  400.  
  401. void        fl_set_bitmap(FL_OBJECT *, int, int, char *);
  402.  
  403.  
  404. /************   Object Class: Box          ************/
  405.  
  406. /***** Class    *****/
  407.  
  408. #define FL_BOX            1
  409.  
  410. /***** Types    *****/
  411.  
  412. /* See the bouding boxes */
  413.  
  414. /***** Defaults *****/
  415.  
  416. #define FL_BOX_BOXTYPE        FL_UP_BOX
  417. #define FL_BOX_COL1        FL_COL1
  418. #define FL_BOX_LCOL        FL_LCOL
  419. #define FL_BOX_ALIGN        FL_ALIGN_CENTER
  420.  
  421. /***** Others   *****/
  422.  
  423. #define FL_BOX_BW        FL_BOUND_WIDTH
  424.  
  425. /***** Routines *****/
  426.  
  427. FL_OBJECT    *fl_create_box(int, float, float, float, float, char []);
  428. FL_OBJECT    *fl_add_box(int, float, float, float, float, char []);
  429.  
  430. /************   Object Class: Browser      ************/
  431.  
  432. /***** Class    *****/
  433.  
  434. #define FL_BROWSER        71
  435.  
  436. /***** Types    *****/
  437.  
  438. #define FL_NORMAL_BROWSER    0
  439. #define FL_SELECT_BROWSER    1
  440. #define FL_HOLD_BROWSER        2
  441. #define FL_MULTI_BROWSER    3
  442.  
  443. /***** Defaults *****/
  444.  
  445. #define FL_BROWSER_BOXTYPE    FL_DOWN_BOX
  446. #define FL_BROWSER_COL1        FL_COL1
  447. #define FL_BROWSER_COL2        3
  448. #define FL_BROWSER_LCOL        FL_LCOL
  449. #define FL_BROWSER_ALIGN    FL_ALIGN_BOTTOM
  450.  
  451. /***** Others   *****/
  452.  
  453. #define FL_BROWSER_SLCOL    FL_COL1
  454. #define FL_BROWSER_BW        FL_BOUND_WIDTH
  455. #define FL_BROWSER_LINELENGTH    128
  456. #define FL_BROWSER_MAXLINE    512
  457.  
  458. /***** Routines *****/
  459.  
  460. FL_OBJECT    *fl_create_browser(int, float, float, float, float, char []);
  461. FL_OBJECT    *fl_add_browser(int, float, float, float, float, char []);
  462.  
  463. void     fl_set_browser_topline(FL_OBJECT *, int);
  464. void     fl_clear_browser(FL_OBJECT *);
  465. void     fl_add_browser_line(FL_OBJECT *, char []);
  466. void     fl_addto_browser(FL_OBJECT *, char []);
  467. void     fl_insert_browser_line(FL_OBJECT *, int , char []);
  468. void     fl_delete_browser_line(FL_OBJECT *, int );
  469. void     fl_replace_browser_line(FL_OBJECT *, int , char []);
  470. char    *fl_get_browser_line(FL_OBJECT *, int);
  471. int     fl_load_browser(FL_OBJECT *, char []);
  472. int    fl_get_browser_maxline(FL_OBJECT *);
  473. void     fl_select_browser_line(FL_OBJECT *, int );
  474. void     fl_deselect_browser_line(FL_OBJECT *, int );
  475. void     fl_deselect_browser(FL_OBJECT *);
  476. int     fl_isselected_browser_line(FL_OBJECT *, int );
  477. int     fl_get_browser(FL_OBJECT *);
  478. void     fl_set_browser_fontsize(FL_OBJECT *, float);
  479. void     fl_set_browser_fontstyle(FL_OBJECT *, int);
  480. void     fl_set_browser_specialkey(FL_OBJECT *, char);
  481. /************   Object Class: Button       ************/
  482.  
  483. /***** Class    *****/
  484.  
  485. #define FL_BUTTON            11
  486.  
  487. /***** Types    *****/
  488.  
  489. #define FL_NORMAL_BUTTON    0
  490. #define FL_PUSH_BUTTON        1
  491. #define FL_RADIO_BUTTON        2
  492. #define FL_HIDDEN_BUTTON    3
  493. #define FL_TOUCH_BUTTON        4
  494. #define FL_INOUT_BUTTON        5
  495. #define FL_RETURN_BUTTON    6
  496. #define FL_HIDDEN_RET_BUTTON    7
  497.  
  498. /***** Defaults *****/
  499.  
  500. #define FL_BUTTON_BOXTYPE    FL_UP_BOX
  501. #define FL_BUTTON_COL1        FL_COL1
  502. #define FL_BUTTON_COL2        FL_COL1
  503. #define FL_BUTTON_LCOL        FL_LCOL
  504. #define FL_BUTTON_ALIGN        FL_ALIGN_CENTER
  505.  
  506. /***** Others   *****/
  507.  
  508. #define FL_BUTTON_MCOL1        FL_MCOL
  509. #define FL_BUTTON_MCOL2        FL_MCOL
  510. #define FL_BUTTON_BW        FL_BOUND_WIDTH
  511.  
  512. /***** Routines *****/
  513.  
  514. FL_OBJECT    *fl_create_button(int, float, float, float, float, char []);
  515. FL_OBJECT    *fl_add_button(int, float, float, float, float, char []);
  516.  
  517. int    fl_get_button(FL_OBJECT *);
  518. void    fl_set_button(FL_OBJECT *, int);
  519.  
  520. void    fl_set_button_shortcut(FL_OBJECT *, char []);
  521.  
  522. /************   Object Class: Chart         ************/
  523.  
  524. /***** Class    *****/
  525.  
  526. #define FL_CHART        4
  527.  
  528. /***** Types    *****/
  529.  
  530. #define FL_BAR_CHART        0
  531. #define FL_HORBAR_CHART        1
  532. #define FL_LINE_CHART        2
  533. #define FL_FILLED_CHART        3
  534. #define FL_SPIKE_CHART        4
  535. #define FL_PIE_CHART        5
  536. #define FL_SPECIALPIE_CHART    6
  537.  
  538. /***** Defaults *****/
  539.  
  540. #define FL_CHART_BOXTYPE    FL_BORDER_BOX
  541. #define FL_CHART_COL1        FL_COL1
  542. #define FL_CHART_LCOL        FL_LCOL
  543. #define FL_CHART_ALIGN        FL_ALIGN_BOTTOM
  544.  
  545. /***** Others   *****/
  546.  
  547. #define FL_CHART_BW        FL_BOUND_WIDTH
  548. #define FL_CHART_MAX        128
  549.  
  550. /***** Routines *****/
  551.  
  552. FL_OBJECT    *fl_create_chart(int, float, float, float, float, char []);
  553. FL_OBJECT    *fl_add_chart(int, float, float, float, float, char []);
  554.  
  555. void    fl_clear_chart(FL_OBJECT *);
  556. void    fl_add_chart_value(FL_OBJECT *, float, char [], int);
  557. void    fl_insert_chart_value(FL_OBJECT *, int, float, char [], int);
  558. void    fl_replace_chart_value(FL_OBJECT *, int, float, char [], int);
  559. void    fl_set_chart_bounds(FL_OBJECT *, float, float);
  560. void    fl_set_chart_maxnumb(FL_OBJECT *, int);
  561. void    fl_set_chart_autosize(FL_OBJECT *, int);
  562. /************   Object Class: Choice       ************/
  563.  
  564. /***** Class    *****/
  565.  
  566. #define FL_CHOICE        42
  567.  
  568. /***** Types    *****/
  569.  
  570. #define FL_NORMAL_CHOICE    0
  571.  
  572. /***** Defaults *****/
  573.  
  574. #define FL_CHOICE_BOXTYPE    FL_DOWN_BOX
  575. #define FL_CHOICE_COL1        FL_COL1
  576. #define FL_CHOICE_COL2        FL_LCOL
  577. #define FL_CHOICE_LCOL        FL_LCOL
  578. #define FL_CHOICE_ALIGN        FL_ALIGN_LEFT
  579.  
  580. /***** Others   *****/
  581.  
  582. #define FL_CHOICE_BW        FL_BOUND_WIDTH
  583. #define FL_CHOICE_MCOL        FL_MCOL
  584. #define FL_CHOICE_MAXITEMS    128
  585. #define FL_CHOICE_MAXSTR    64
  586.  
  587. /***** Routines *****/
  588.  
  589. FL_OBJECT     *fl_create_choice(int ,float ,float ,float ,float ,char []);
  590. FL_OBJECT     *fl_add_choice(int ,float ,float ,float ,float ,char []);
  591.  
  592. void     fl_clear_choice(FL_OBJECT *);
  593. void     fl_addto_choice(FL_OBJECT *, char []);
  594. void     fl_replace_choice(FL_OBJECT *, int , char []);
  595. void     fl_delete_choice(FL_OBJECT *, int );
  596. void     fl_set_choice(FL_OBJECT *, int );
  597. int     fl_get_choice(FL_OBJECT *);
  598. char    *fl_get_choice_text(FL_OBJECT *);
  599. void    fl_set_choice_fontsize(FL_OBJECT *, float);
  600. void    fl_set_choice_fontstyle(FL_OBJECT *, int);
  601.  
  602.  
  603. /************   Object Class: Clock        ************/
  604.  
  605. /***** Class    *****/
  606.  
  607. #define FL_CLOCK        61
  608.  
  609. /***** Types    *****/
  610.  
  611. #define FL_SQUARE_CLOCK        0
  612. #define FL_ROUND_CLOCK        1
  613.  
  614. /***** Defaults *****/
  615.  
  616. #define FL_CLOCK_BOXTYPE    FL_UP_BOX
  617. #define FL_CLOCK_COL1        37
  618. #define FL_CLOCK_COL2        42
  619. #define FL_CLOCK_LCOL        FL_LCOL
  620. #define FL_CLOCK_ALIGN        FL_ALIGN_BOTTOM
  621.  
  622. /***** Others   *****/
  623.  
  624. #define FL_CLOCK_TOPCOL        FL_COL1
  625. #define FL_CLOCK_BW        FL_BOUND_WIDTH
  626.  
  627. /***** Routines *****/
  628.  
  629. FL_OBJECT    *fl_create_clock(int, float, float, float, float, char []);
  630. FL_OBJECT    *fl_add_clock(int, float, float, float, float, char []);
  631.  
  632. void    fl_get_clock(FL_OBJECT *,int * ,int *, int *);
  633.  
  634. #ifndef COLORWHEEL_H
  635. #define COLORWHEEL_H
  636.  
  637. #define FL_COLORWHEEL_BW         FL_BUTTON_BW
  638.  
  639. #define FL_COLORWHEEL_CURSOR        .025
  640.  
  641. #define FL_COLORWHEEL             1492
  642. #define FL_NORMAL_COLORWHEEL         0
  643.  
  644. FL_OBJECT *fl_create_colorwheel(int type, float x, float y, float w,
  645.                 float h, char label[]);
  646. FL_OBJECT *fl_add_colorwheel(int type, float x, float y, float w, float h,
  647.                char label[]);
  648.  
  649. void fl_set_colorwheel(FL_OBJECT *obj, float *color);
  650. void fl_set_colorwheel_intensity(FL_OBJECT *obj, float intensity);
  651. void fl_set_colorwheel_alpha(FL_OBJECT *obj, float alpha);
  652.  
  653. void fl_get_colorwheel(FL_OBJECT *obj, float *color);
  654. float fl_get_colorwheel_intensity(FL_OBJECT *obj);
  655. float fl_get_colorwheel_alpha(FL_OBJECT *obj);
  656.      
  657. #endif
  658. /************   Object Class: Counter       ************/
  659.  
  660. /***** Class    *****/
  661.  
  662. #define FL_COUNTER        25
  663.  
  664. /***** Types    *****/
  665.  
  666. #define FL_NORMAL_COUNTER    0
  667. #define FL_SIMPLE_COUNTER    1
  668.  
  669. /***** Defaults *****/
  670.  
  671. #define FL_COUNTER_BOXTYPE    FL_UP_BOX
  672. #define FL_COUNTER_COL1        FL_COL1
  673. #define FL_COUNTER_COL2        4
  674. #define FL_COUNTER_LCOL        FL_LCOL
  675. #define FL_COUNTER_ALIGN    FL_ALIGN_BOTTOM
  676.  
  677. /***** Others   *****/
  678.  
  679. #define FL_COUNTER_BW        FL_BOUND_WIDTH
  680.  
  681. /***** Routines *****/
  682.  
  683. FL_OBJECT    *fl_create_counter(int, float, float, float, float, char []);
  684. FL_OBJECT    *fl_add_counter(int, float, float, float, float, char []);
  685.  
  686. void     fl_set_counter_value(FL_OBJECT *, float);
  687. void     fl_set_counter_bounds(FL_OBJECT *, float, float);
  688. void     fl_set_counter_step(FL_OBJECT *, float, float);
  689. void    fl_set_counter_precision(FL_OBJECT *, int);
  690. float     fl_get_counter_value(FL_OBJECT *);
  691.  
  692. void    fl_set_counter_return(FL_OBJECT *, int);
  693. /************   Object Class: Dial         ************/
  694.  
  695. /***** Class    *****/
  696.  
  697. #define FL_DIAL            22
  698.  
  699. /***** Types    *****/
  700.  
  701. #define FL_NORMAL_DIAL        0
  702. #define FL_LINE_DIAL        1
  703.  
  704. /***** Defaults *****/
  705.  
  706. #define FL_DIAL_BOXTYPE        FL_NO_BOX
  707. #define FL_DIAL_COL1        FL_COL1
  708. #define FL_DIAL_COL2        37
  709. #define FL_DIAL_LCOL        FL_LCOL
  710. #define FL_DIAL_ALIGN        FL_ALIGN_BOTTOM
  711.  
  712. /***** Others   *****/
  713.  
  714. #define FL_DIAL_TOPCOL        FL_COL1
  715. #define FL_DIAL_BW        FL_BOUND_WIDTH
  716.  
  717. /***** Routines *****/
  718.  
  719. FL_OBJECT    *fl_create_dial(int ,float, float, float, float, char []);
  720. FL_OBJECT    *fl_add_dial(int ,float, float, float, float, char []);
  721.  
  722. void     fl_set_dial_value(FL_OBJECT *, float);
  723. float     fl_get_dial_value(FL_OBJECT *);
  724. void     fl_set_dial_bounds(FL_OBJECT *, float, float);
  725. void     fl_get_dial_bounds(FL_OBJECT *, float *, float*);
  726.  
  727. void    fl_set_dial_step(FL_OBJECT *, float);
  728. void     fl_set_dial_return(FL_OBJECT *, int);
  729. #ifndef FL_EDIT
  730.  
  731. /************   Object Class: edit        ************/
  732.  
  733. /***** Class    *****/
  734.  
  735. #define FL_EDIT        1026
  736.  
  737. /***** Types    *****/
  738.  
  739. #define FL_NORMAL_EDIT        0
  740.  
  741. /***** Defaults *****/
  742.  
  743. #define FL_EDIT_BOXTYPE    FL_DOWN_BOX
  744. #define FL_EDIT_COL1        13
  745. #define FL_EDIT_COL2        5
  746. #define FL_EDIT_LCOL        FL_LCOL
  747. #define FL_EDIT_ALIGN        FL_ALIGN_LEFT
  748. #define FL_EDIT_FONT        FL_FIXED_STYLE
  749.  
  750. /***** Others   *****/
  751.  
  752. #define FL_EDIT_TCOL        FL_LCOL
  753. #define FL_EDIT_CCOL        4
  754. #define FL_EDIT_BW        FL_BOUND_WIDTH
  755. #define FL_EDIT_MAX        128
  756.  
  757. /***** Routines *****/
  758.  
  759. extern FL_OBJECT *fl_create_edit(int, float, float, float, float, char []);
  760. extern FL_OBJECT *fl_add_edit(int, float, float, float, float, char []);
  761.  
  762. extern void    fl_set_edit_color(FL_OBJECT *, int, int);
  763. extern char    *fl_get_edit_line(FL_OBJECT *,int);
  764. extern void    fl_set_edit_return(FL_OBJECT *, int);
  765. extern void    fl_add_edit_line(FL_OBJECT *, char *);
  766. extern void    fl_addto_edit(FL_OBJECT *, char *);
  767. extern void    fl_insert_edit_line(FL_OBJECT *, char *);
  768. extern void    fl_load_edit(FL_OBJECT *, char *);
  769. #endif    /* FL_EDIT */
  770. /************   Object Class: Fouraxis (unit vector in 4-space)  ************/
  771.  
  772. /***** Class    *****/
  773.  
  774. #define FL_FOURAXIS        1034
  775.  
  776. /***** Types    *****/
  777.  
  778. #define FL_NORMAL_FOURAXIS    0
  779. #define    FL_CIRCLE_FOURAXIS    1
  780. #define    FL_SPOKED_FOURAXIS    2
  781.  
  782. /***** Defaults *****/
  783.  
  784. #define FL_FOURAXIS_BOXTYPE    FL_DOWN_BOX
  785. #define FL_FOURAXIS_COL1    FL_COL1
  786. #define FL_FOURAXIS_COL2    1
  787. #define FL_FOURAXIS_LCOL    FL_LCOL
  788. #define FL_FOURAXIS_ALIGN    FL_ALIGN_BOTTOM
  789.  
  790. /***** Others   *****/
  791.  
  792. #define FL_FOURAXIS_BW        FL_BOUND_WIDTH
  793.  
  794. /***** Routines *****/
  795.  
  796. FL_OBJECT    *fl_create_fouraxis(int, float, float, float, float, char []);
  797. FL_OBJECT    *fl_add_fouraxis(int, float, float, float, float, char []);
  798.  
  799.         /* Set direction vector.  w chosen to form unit vector */
  800. void     fl_set_fouraxis(FL_OBJECT *, float x, float y, float z);
  801. void     fl_get_fouraxis(FL_OBJECT *, float *xp, float *yp, float *zp, float *wp);
  802.         /* Also maintains an orthonormal basis matrix, with column 3
  803.          * (w) a unit vector in the chosen direction
  804.          * and other columns chosen appropriately.
  805.          */
  806. void    fl_get_fouraxis_basis(FL_OBJECT *, float * /* really float[4][4] */);
  807. void    fl_set_fouraxis_basis(FL_OBJECT *, float * /* really float[4][4] */);
  808.  
  809. void     fl_set_fouraxis_return(FL_OBJECT *, int);
  810.  
  811. #ifndef FL_FRACT
  812.  
  813. /************   Object Class: Impcount       ************/
  814.  
  815. /***** Class    *****/
  816.  
  817. #define FL_FRACT        1025
  818.  
  819. /***** Types    *****/
  820.  
  821. #define FL_NORMAL_FRACT    0
  822. #define FL_SIMPLE_FRACT    1
  823.  
  824. /***** Defaults *****/
  825.  
  826. #define FL_FRACT_BOXTYPE    FL_UP_BOX
  827. #define FL_FRACT_COL1    FL_COL1
  828. #define FL_FRACT_COL2    4
  829. #define FL_FRACT_LCOL    FL_LCOL
  830. #define FL_FRACT_ALIGN    FL_ALIGN_BOTTOM
  831.  
  832. /***** Others   *****/
  833.  
  834. #define FL_FRACT_COL3    13
  835. #define FL_FRACT_COL4    5
  836. #define FL_FRACT_BW        FL_BOUND_WIDTH
  837. #define FL_FRACT_MAX        128
  838.  
  839. /***** Routines *****/
  840.  
  841. FL_OBJECT    *fl_create_fract(int, float, float, float, float, char []);
  842. FL_OBJECT    *fl_add_fract(int, float, float, float, float, char []);
  843.  
  844. void     fl_set_fract_value(FL_OBJECT *, float);
  845. void     fl_set_fract_bounds(FL_OBJECT *, float, float);
  846. void     fl_set_fract_step(FL_OBJECT *, float, float);
  847. void    fl_set_fract_precision(FL_OBJECT *, int);
  848. float     fl_get_fract_value(FL_OBJECT *);
  849. void    fl_set_fract_color(FL_OBJECT *, int, int);
  850.  
  851. void    fl_set_fract_return(FL_OBJECT *, int);
  852.  
  853. #endif
  854. /************   Object Class: Free         ************/
  855.  
  856. /***** Class    *****/
  857.  
  858. #define FL_FREE            101
  859.  
  860. /***** Types    *****/
  861.  
  862. #define FL_NORMAL_FREE        1
  863. #define FL_SLEEPING_FREE    2
  864. #define FL_INPUT_FREE        3
  865. #define FL_CONTINUOUS_FREE    4
  866. #define FL_ALL_FREE        5
  867.  
  868. /***** Defaults *****/
  869.  
  870. /***** Others   *****/
  871.  
  872. /***** Routines *****/
  873.  
  874. FL_OBJECT     *fl_create_free(int, float, float, float, float, char [], FL_HANDLEPTR);
  875. FL_OBJECT     *fl_add_free(int, float, float, float, float, char [], FL_HANDLEPTR);
  876.  
  877. /************   Object Class: Input        ************/
  878.  
  879. /***** Class    *****/
  880.  
  881. #define FL_INPUT        31
  882.  
  883. /***** Types    *****/
  884.  
  885. #define FL_NORMAL_INPUT        0
  886. #define FL_FLOAT_INPUT        1
  887. #define FL_INT_INPUT        2
  888. #define FL_HIDDEN_INPUT        3
  889.  
  890. /***** Defaults *****/
  891.  
  892. #define FL_INPUT_BOXTYPE    FL_DOWN_BOX
  893. #define FL_INPUT_COL1        13
  894. #define FL_INPUT_COL2        5
  895. #define FL_INPUT_LCOL        FL_LCOL
  896. #define FL_INPUT_ALIGN        FL_ALIGN_LEFT
  897.  
  898. /***** Others   *****/
  899.  
  900. #define FL_INPUT_TCOL        FL_LCOL
  901. #define FL_INPUT_CCOL        4
  902. #define FL_INPUT_BW        FL_BOUND_WIDTH
  903. #define FL_INPUT_MAX        128
  904.  
  905. /***** Routines *****/
  906.  
  907. FL_OBJECT    *fl_create_input(int, float, float, float, float, char []);
  908. FL_OBJECT    *fl_add_input(int, float, float, float, float, char []);
  909.  
  910. void    fl_set_input(FL_OBJECT *, char []);
  911. void    fl_set_input_color(FL_OBJECT *, int, int);
  912. char    *fl_get_input(FL_OBJECT *);
  913. void    fl_set_input_return(FL_OBJECT *, int);
  914.  
  915. /************   Object Class: Lightbutton  ************/
  916.  
  917. /***** Class    *****/
  918.  
  919. #define FL_LIGHTBUTTON        12
  920.  
  921. /***** Types    *****/
  922.  
  923.     /* Same types as for buttons */
  924.  
  925. /***** Defaults *****/
  926.  
  927. #define FL_LIGHTBUTTON_BOXTYPE    FL_UP_BOX
  928. #define FL_LIGHTBUTTON_COL1    39
  929. #define FL_LIGHTBUTTON_COL2    3
  930. #define FL_LIGHTBUTTON_LCOL    FL_LCOL
  931. #define FL_LIGHTBUTTON_ALIGN    FL_ALIGN_CENTER
  932.  
  933. /***** Others   *****/
  934.  
  935. #define FL_LIGHTBUTTON_TOPCOL    FL_COL1
  936. #define FL_LIGHTBUTTON_MCOL    FL_MCOL
  937. #define FL_LIGHTBUTTON_BW1    FL_BOUND_WIDTH
  938. #define FL_LIGHTBUTTON_BW2    FL_BOUND_WIDTH/2.0
  939. #define FL_LIGHTBUTTON_MINSIZE    12.0
  940.  
  941. /***** Routines *****/
  942.  
  943. FL_OBJECT  *fl_create_lightbutton(int, float, float, float, float, char []);
  944. FL_OBJECT  *fl_add_lightbutton(int, float, float, float, float, char []);
  945.  
  946. /************   Object Class: Menu         ************/
  947.  
  948. /***** Class    *****/
  949.  
  950. #define FL_MENU            41
  951.  
  952. /***** Types    *****/
  953.  
  954. #define FL_TOUCH_MENU        0
  955. #define FL_PUSH_MENU        1
  956.  
  957. /***** Defaults *****/
  958.  
  959. #define FL_MENU_BOXTYPE        FL_BORDER_BOX
  960. #define FL_MENU_COL1        55
  961. #define FL_MENU_COL2        37
  962. #define FL_MENU_LCOL        FL_LCOL
  963. #define FL_MENU_ALIGN        FL_ALIGN_CENTER
  964.  
  965. /***** Others   *****/
  966.  
  967. #define FL_MENU_BW        FL_BOUND_WIDTH
  968. #define FL_MENU_MAX        300
  969.  
  970. /***** Routines *****/
  971.  
  972. FL_OBJECT    *fl_create_menu(int, float, float, float, float, char []);
  973. FL_OBJECT    *fl_add_menu(int, float, float, float, float, char []);
  974.  
  975. void    fl_set_menu(FL_OBJECT *, char []);
  976. void    fl_addto_menu(FL_OBJECT *, char []);
  977. long    fl_get_menu(FL_OBJECT *);
  978.  
  979. /************   Object Class: Positioner   ************/
  980.  
  981. /***** Class    *****/
  982.  
  983. #define FL_POSITIONER        23
  984.  
  985. /***** Types    *****/
  986.  
  987. #define FL_NORMAL_POSITIONER    0
  988.  
  989. /***** Defaults *****/
  990.  
  991. #define FL_POSITIONER_BOXTYPE    FL_DOWN_BOX
  992. #define FL_POSITIONER_COL1    FL_COL1
  993. #define FL_POSITIONER_COL2    1
  994. #define FL_POSITIONER_LCOL    FL_LCOL
  995. #define FL_POSITIONER_ALIGN    FL_ALIGN_BOTTOM
  996.  
  997. /***** Others   *****/
  998.  
  999. #define FL_POSITIONER_BW    FL_BOUND_WIDTH
  1000.  
  1001. /***** Routines *****/
  1002.  
  1003. FL_OBJECT    *fl_create_positioner(int, float, float, float, float, char []);
  1004. FL_OBJECT    *fl_add_positioner(int, float, float, float, float, char []);
  1005.  
  1006. void     fl_set_positioner_xvalue(FL_OBJECT *, float);
  1007. float     fl_get_positioner_xvalue(FL_OBJECT *);
  1008. void     fl_set_positioner_xbounds(FL_OBJECT *, float, float);
  1009. void     fl_get_positioner_xbounds(FL_OBJECT *, float *, float *);
  1010. void     fl_set_positioner_yvalue(FL_OBJECT *, float);
  1011. float     fl_get_positioner_yvalue(FL_OBJECT *);
  1012. void     fl_set_positioner_ybounds(FL_OBJECT *, float, float);
  1013. void     fl_get_positioner_ybounds(FL_OBJECT *, float *, float *);
  1014. void    fl_set_positioner_xstep(FL_OBJECT *, float);
  1015. void    fl_set_positioner_ystep(FL_OBJECT *, float);
  1016.  
  1017.  
  1018. void     fl_set_positioner_return(FL_OBJECT *, int);
  1019. /************   Object Class: Roundbutton  ************/
  1020.  
  1021. /***** Class    *****/
  1022.  
  1023. #define FL_ROUNDBUTTON        13
  1024.  
  1025. /***** Types    *****/
  1026.  
  1027.     /* Same types as for buttons */
  1028.  
  1029. /***** Defaults *****/
  1030.  
  1031. #define FL_ROUNDBUTTON_BOXTYPE    FL_NO_BOX
  1032. #define FL_ROUNDBUTTON_COL1    7
  1033. #define FL_ROUNDBUTTON_COL2    3
  1034. #define FL_ROUNDBUTTON_LCOL    FL_LCOL
  1035. #define FL_ROUNDBUTTON_ALIGN    FL_ALIGN_CENTER
  1036.  
  1037. /***** Others   *****/
  1038.  
  1039. #define FL_ROUNDBUTTON_TOPCOL    FL_COL1
  1040. #define FL_ROUNDBUTTON_MCOL    FL_MCOL
  1041. #define FL_ROUNDBUTTON_BW    FL_BOUND_WIDTH
  1042.  
  1043. /***** Routines *****/
  1044.  
  1045. FL_OBJECT  *fl_create_roundbutton(int, float, float, float, float, char []);
  1046. FL_OBJECT  *fl_add_roundbutton(int, float, float, float, float, char []);
  1047.  
  1048.  
  1049. /************   Object Class: Slider       ************/
  1050.  
  1051. /***** Class    *****/
  1052.  
  1053. #define FL_SLIDER        21
  1054. #define FL_VALSLIDER        24
  1055.  
  1056. /***** Types    *****/
  1057.  
  1058. #define FL_VERT_SLIDER        0
  1059. #define FL_HOR_SLIDER        1
  1060. #define FL_VERT_FILL_SLIDER    2
  1061. #define FL_HOR_FILL_SLIDER    3
  1062. #define FL_VERT_NICE_SLIDER    4
  1063. #define FL_HOR_NICE_SLIDER    5
  1064.  
  1065. /***** Defaults *****/
  1066.  
  1067. #define FL_SLIDER_BOXTYPE    FL_DOWN_BOX
  1068. #define FL_SLIDER_COL1        FL_COL1
  1069. #define FL_SLIDER_COL2        FL_COL1
  1070. #define FL_SLIDER_LCOL        FL_LCOL
  1071. #define FL_SLIDER_ALIGN        FL_ALIGN_BOTTOM
  1072.  
  1073. /***** Others   *****/
  1074.  
  1075. #define FL_SLIDER_BW1        FL_BOUND_WIDTH
  1076. #define FL_SLIDER_BW2        FL_BOUND_WIDTH*0.75
  1077.  
  1078. #define FL_SLIDER_FINE        0.05
  1079. #define FL_SLIDER_WIDTH        0.08
  1080.  
  1081. /***** Routines *****/
  1082.  
  1083. FL_OBJECT    *fl_create_slider(int, float, float, float, float, char []);
  1084. FL_OBJECT    *fl_add_slider(int, float, float, float, float, char []);
  1085.  
  1086. FL_OBJECT    *fl_create_valslider(int, float, float, float, float, char []);
  1087. FL_OBJECT    *fl_add_valslider(int, float, float, float, float, char []);
  1088.  
  1089. void     fl_set_slider_value(FL_OBJECT *, float);
  1090. float     fl_get_slider_value(FL_OBJECT *);
  1091. void     fl_set_slider_bounds(FL_OBJECT *, float, float);
  1092. void     fl_get_slider_bounds(FL_OBJECT *, float *, float *);
  1093.  
  1094. void    fl_set_slider_return(FL_OBJECT *, int);
  1095.  
  1096. void    fl_set_slider_step(FL_OBJECT *, float);
  1097. void    fl_set_slider_size(FL_OBJECT *, float);
  1098. void    fl_set_slider_precision(FL_OBJECT *, int);
  1099. /************   Object Class: Text         ************/
  1100.  
  1101. /***** Class    *****/
  1102.  
  1103. #define FL_TEXT            2
  1104.  
  1105. /***** Types    *****/
  1106.  
  1107. #define FL_NORMAL_TEXT        0
  1108.  
  1109. /***** Defaults *****/
  1110.  
  1111. #define FL_TEXT_BOXTYPE        FL_NO_BOX
  1112. #define FL_TEXT_COL1        FL_COL1
  1113. #define FL_TEXT_LCOL        FL_LCOL
  1114. #define FL_TEXT_ALIGN        FL_ALIGN_LEFT
  1115.  
  1116. /***** Others   *****/
  1117.  
  1118. #define FL_TEXT_BW        FL_BOUND_WIDTH
  1119.  
  1120. /***** Routines *****/
  1121.  
  1122. FL_OBJECT     *fl_create_text(int, float, float, float, float, char []);
  1123. FL_OBJECT     *fl_add_text(int, float, float, float, float, char []);
  1124.  
  1125. /************   Object Class: Timer        ************/
  1126.  
  1127. /***** Class    *****/
  1128.  
  1129. #define FL_TIMER        62
  1130.  
  1131. /***** Types    *****/
  1132.  
  1133. #define FL_NORMAL_TIMER        0
  1134. #define FL_VALUE_TIMER        1
  1135. #define FL_HIDDEN_TIMER        2
  1136.  
  1137. /***** Defaults *****/
  1138.  
  1139. #define FL_TIMER_BOXTYPE    FL_DOWN_BOX
  1140. #define FL_TIMER_COL1        FL_COL1
  1141. #define FL_TIMER_COL2        1
  1142. #define FL_TIMER_LCOL        FL_LCOL
  1143. #define FL_TIMER_ALIGN        FL_ALIGN_CENTER
  1144.  
  1145. /***** Others   *****/
  1146.  
  1147. #define FL_TIMER_BW        FL_BOUND_WIDTH
  1148. #define FL_TIMER_BLINKRATE    0.2
  1149.  
  1150. /***** Routines *****/
  1151.  
  1152. FL_OBJECT    *fl_create_timer(int, float, float, float, float, char []);
  1153. FL_OBJECT    *fl_add_timer(int, float, float, float, float, char []);
  1154.  
  1155. void    fl_set_timer(FL_OBJECT *, float);
  1156. float    fl_get_timer(FL_OBJECT *);
  1157.  
  1158.  
  1159. #if defined(_LANGUAGE_C_PLUS_PLUS) || defined(__cplusplus)
  1160. }
  1161. #endif
  1162.  
  1163. #endif    /* define __FORMS_H__ */
  1164.